﻿Public Class Seguridad_eliminar_reg
    Enum termino
        aprobado
        rechazado
    End Enum

    Dim nombre As String

    Public Property _Nombre
        Get
            Return nombre
        End Get
        Set(ByVal value)
            nombre = value
        End Set
    End Property

    Dim acceso As New acceso_a_datos

    'LOAD 
    Private Sub Seguridad_eliminar_reg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.masktxt_contraseña.Focus()
        Me.masktxt_contraseña.Text = ""
    End Sub

    'BOTON ACEPTAR
    Private Sub btn_aceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_aceptar.Click

        If verificar_contraseña() = termino.aprobado Then
            If eliminar() = termino.aprobado Then
                MessageBox.Show("Horarios eliminados correctamente.", "Felicidades", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)

                Busqueda_Rapida.grilla_Empleados.Rows.Clear()

                Select Case Busqueda_Rapida.tipo_busqueda
                    Case "numero"
                        Busqueda_Rapida.buscar_por_num_doc()
                        Exit Select
                    Case "apellido"
                        Busqueda_Rapida.buscar_por_ape()
                        Exit Select
                    Case "nombre"
                        Busqueda_Rapida.buscar_por_nom()
                        Exit Select
                    Case "ape_nom"
                        Busqueda_Rapida.buscar_por_ape_nom()
                        Exit Select
                End Select

                Busqueda_Rapida.txt_doc.Text = ""
                Busqueda_Rapida.txt_ape.Text = ""
                Busqueda_Rapida.txt_nom.Text = ""
                Me.Close()
                Busqueda_Rapida.Focus()
            Else
                MessageBox.Show("No hay horarios que eliminar.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
                Busqueda_Rapida.txt_doc.Text = ""
                Busqueda_Rapida.txt_ape.Text = ""
                Busqueda_Rapida.txt_nom.Text = ""
                Me.Close()
                Busqueda_Rapida.Focus()
            End If
        End If
    End Sub

    'BOTON SALIR
    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        Me.Close()
        Busqueda_Rapida.Show()
    End Sub

    'FUNCION PARA ELIMINAR
    Private Function eliminar() As termino
        Dim comando As String = ""
        Dim consulta As String = ""
        Dim tabla As Data.DataTable

        consulta = "SELECT * FROM Horario H INNER JOIN Empleado E ON H.numero_Doc=E.numero_Doc "
        consulta += "WHERE Month(H.fecha)<" & Now.Month

        tabla = acceso._consulta(consulta)

        If tabla.Rows.Count > 0 Then
            comando = "DELETE Horario FROM Horario H INNER JOIN Empleado E ON H.numero_Doc=E.numero_Doc "
            comando += "WHERE ((H.numero_Doc='" & Busqueda_Rapida.txt_doc.Text & "' OR (E.nombre='" & Busqueda_Rapida.txt_nom.Text
            comando += "' AND E.apellido='" & Busqueda_Rapida.txt_ape.Text & "')) AND Month(H.fecha)< " & Now.Month & ")"

            acceso._consulta(comando)
            Return termino.aprobado
        Else
            '"No existen meses anteriores que eliminar para este usuario."
            Return termino.rechazado
            Exit Function
        End If
    End Function

    'VERIFICAMOS CONTRASEÑA
    Private Function verificar_contraseña() As termino
        acceso._tabla = "Empleado"
        Dim tabla As New Data.DataTable
        Dim consulta As String = ""
        Dim usuario = nombre

        If Me.masktxt_contraseña.Text <> "" Then
            'Consulta para seleccionar el registro que cumpla con el criterio.
            consulta = "SELECT nombre_Usuario FROM Empleado "
            consulta += "WHERE (nombre_Usuario LIKE '" & usuario & "'"
            consulta += " AND contraseña_Usuario=HASHBYTES('SHA1', '" & Me.masktxt_contraseña.Text & "'))"
            tabla = acceso._consulta(consulta)

            If tabla.Rows.Count = 1 Then
                Return termino.aprobado
            Else
                MessageBox.Show("Contraseña incorrecta, vuelve a intentarlo.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
                Me.masktxt_contraseña.Text = ""
                Me.masktxt_contraseña.Focus()
                Return termino.rechazado
            End If
        Else
            MessageBox.Show("Debe ingresar su contraseña para continuar.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Me.masktxt_contraseña.Focus()
            Return termino.rechazado
        End If
    End Function

    Private Sub Seguridad_eliminar_reg_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        Dispose()
    End Sub
End Class